package transitarios.api;

import java.io.Serializable;
import java.util.List;

import transitarios.entidades.veiculos.Veiculo;
import transitarios.exceptions.VeiculoNaoEstaLivreException;

public interface IGestaoUtilizacaoFrota extends Serializable {

	public void alocarVeiculo(Veiculo veiculo)
			throws VeiculoNaoEstaLivreException;

	public void colocarVeiculoEmServico(Veiculo veiculo);

	public List<Veiculo> devolveTodosVeiculos();

	public Veiculo devolveUmVeiculoLivre(String mat)
			throws VeiculoNaoEstaLivreException;

	public List<Veiculo> devolveVeiculosEmServico();

	public List<Veiculo> devolveVeiculosNasInstalacoesAlocados();

	public List<Veiculo> devolveVeiculosNasInstalacoesLivres();

	public List<Veiculo> getFrotaEmServico();

	public List<Veiculo> getFrotaNasInstalacoesAlocados();

	public List<Veiculo> getFrotaNasInstalacoesLivres();

	public void inserirNovoVeiculo(Veiculo v);

	public void libertarVeiculo(Veiculo veiculo);

	public void remove(String matricula);

	public void setFrotaEmServico(List<Veiculo> frotaEmServico);

	public void setFrotaNasInstalacoesAlocados(
			List<Veiculo> frotaNasInstalacoesAlocados);

	public void setFrotaNasInstalacoesLivres(
			List<Veiculo> frotaNasInstalacoesLivres);
}